Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Direct Client-to-Client</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Direct_Client-to-Client"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Direct_Client-to-Client rootpage-Direct_Client-to-Client skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Direct Client-to-Client</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1305433154">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1248332772">
/* start https://en.wikipedia.org/ */


.mw-parser-output .multiple-issues-text{width:95%;margin:0.2em 0}.mw-parser-output .multiple-issues-text>.mw-collapsible-content{margin-top:0.3em}.mw-parser-output .compact-ambox .ambox{border:none;border-collapse:collapse;background-color:transparent;margin:0 0 0 1.6em!important;padding:0!important;width:auto;display:block}body.mediawiki .mw-parser-output .compact-ambox .ambox.mbox-small-left{font-size:100%;width:auto;margin:0}.mw-parser-output .compact-ambox .ambox .mbox-text{padding:0!important;margin:0!important}.mw-parser-output .compact-ambox .ambox .mbox-text-span{display:list-item;line-height:1.5em;list-style-type:disc}body.skin-minerva .mw-parser-output .multiple-issues-text>.mw-collapsible-toggle,.mw-parser-output .compact-ambox .ambox .mbox-image,.mw-parser-output .compact-ambox .ambox .mbox-imageright,.mw-parser-output .compact-ambox .ambox .mbox-empty-cell,.mw-parser-output .compact-ambox .hide-when-compact{display:none}


/* end https://en.wikipedia.org/ */
</style>
<p><b>Direct Client-to-Client</b> (<b>DCC</b>) (originally <b>Direct Client Connection</b><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>) is an <a href="Internet_Relay_Chat" class="mw-redirect" title="Internet Relay Chat">IRC</a>-related sub-protocol enabling <a href="Peer-to-peer" title="Peer-to-peer">peers</a> to interconnect using an IRC server for <a href="Handshake_(computing)" title="Handshake (computing)">handshaking</a> in order to exchange files or perform non-relayed chats. Once established, a typical DCC session runs independently from the IRC server. Originally designed to be used with <a href="IrcII" title="IrcII">ircII</a> it is now supported by many <a href="Client_(computing)" title="Client (computing)">IRC clients</a>. Some peer-to-peer clients on napster-protocol servers also have DCC send/get capability, including TekNap, SunshineUN and Lopster. A variation of the DCC protocol called SDCC (Secure Direct Client-to-Client), also known as DCC SCHAT supports <a href="Encrypted" class="mw-redirect" title="Encrypted">encrypted</a> connections. An <a href="Request_for_Comments" title="Request for Comments">RFC specification</a> on the use of DCC does not exist.
</p><p>DCC connections can be initiated in two different ways:
</p>
<ul><li>The most common way is to use <a href="Client-To-Client_Protocol" class="mw-redirect" title="Client-To-Client Protocol">CTCP</a> to initiate a DCC session. The CTCP is sent from one user, over the IRC network, to another user.</li>
<li>Another way to initiate a DCC session is for the client to connect directly to the DCC server. Using this method, no traffic will go across the IRC network (the parties involved do not need to be connected to an IRC network in order to initiate the DCC connection).</li></ul>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p><a href="IrcII" title="IrcII">ircII</a> was the first IRC client to implement the CTCP and DCC protocols.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> The CTCP protocol was implemented by Michael Sandrof in 1990 for ircII version 2.1.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> The DCC protocol was implemented by Troy Rollo in 1991 for version 2.1.2,<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> but was never intended to be portable to other IRC clients.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Common_DCC_applications">Common DCC applications</h2></div>
<div class="mw-heading mw-heading3"><h3 id="DCC_CHAT">DCC CHAT</h3></div>
<p>The CHAT service enables users to chat with each other over a DCC connection.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> The traffic will go directly between the users, and not over the IRC network. When compared to sending messages normally, this reduces IRC network load, allows sending of larger amounts of text at once, due to the lack of flood control, and makes the communication more secure by not exposing the message to the IRC servers (however, the message is still in <a href="Plaintext" title="Plaintext">plaintext</a>).
</p><p>DCC CHAT is normally initiated using a <a href="Client-To-Client_Protocol" class="mw-redirect" title="Client-To-Client Protocol">CTCP</a> handshake. The user wishing to establish the connection sends the following CTCP to the target, <code>DCC CHAT <var style="padding-right: 1px;">protocol</var> <var style="padding-right: 1px;">ip</var> <var style="padding-right: 1px;">port</var></code>, where <var style="padding-right: 1px;">ip</var> and <var style="padding-right: 1px;">port</var> are the IP address and port number of the sender, and are expressed as integers. <var style="padding-right: 1px;">protocol</var> is <style data-mw-deduplicate="TemplateStyles:r886049734">
/* start https://en.wikipedia.org/ */


.mw-parser-output .monospaced{font-family:monospace,monospace}


/* end https://en.wikipedia.org/ */
</style><span class="monospaced">chat</span> for standard DCC CHAT. The receiving party can then connect to the given port and IP address.
</p><p>Once a connection is established, the protocol used for DCC CHAT is very simple: users exchange <a href="CRLF" class="mw-redirect" title="CRLF">CRLF</a>-terminated messages. Messages that begin with an <a href="ASCII" title="ASCII">ASCII</a> 001 (control-A, represented below by <span class="monospaced">[^A]</span>) and the word <span class="monospaced">ACTION</span>, and are terminated by another ASCII <span class="monospaced">001</span>, are interpreted as emotes: <code>[^A]ACTION waves goodbye[^A]</code>.
</p>
<div class="mw-heading mw-heading4"><h4 id="DCC_Whiteboard">DCC Whiteboard</h4></div>
<p>This is an extension to DCC CHAT, allowing simple drawing commands to be sent as well as lines of text. DCC Whiteboard is initiated with a handshake similar to DCC CHAT, with the protocol <span class="monospaced">chat</span> replaced by <span class="monospaced">wboard</span>:
<code>DCC CHAT wboard <var style="padding-right: 1px;">ip</var> <var style="padding-right: 1px;">port</var></code>.
</p><p>Once the connection is established, the two clients exchange <a href="CRLF" class="mw-redirect" title="CRLF">CRLF</a>-terminated messages. Messages that begin (and optionally end) with ASCII <span class="monospaced">001</span> are interpreted as special commands; the command <span class="monospaced">ACTION</span> represents an emote, while others cause lines to be drawn on the user's whiteboard surface, or allow the two clients to negotiate a set of features.
</p>
<div class="mw-heading mw-heading3"><h3 id="DCC_SEND">DCC SEND </h3></div>
<p>The SEND service allows users to send files to one another. The original specification for the handshake did not allow the receiver to know the total file size nor to resume a transfer. This has made clients introduce their own extensions to the handshake, many of which have become widely supported.
</p><p>The original handshake consisted of the sender sending the following CTCP to the receiver: <code>DCC SEND <var style="padding-right: 1px;">filename</var> <var style="padding-right: 1px;">ip</var> <var style="padding-right: 1px;">port</var></code>.
</p><p>As with DCC CHAT, <var style="padding-right: 1px;">ip</var> and <var style="padding-right: 1px;">port</var> are the IP address and port where the sending machine will be listening for an incoming connection. Some clients enclose filenames with spaces in double quotes. It is common practice to add the file size as a last argument: <code>DCC SEND <var style="padding-right: 1px;">filename</var> <var style="padding-right: 1px;">ip</var> <var style="padding-right: 1px;">port</var> <var style="padding-right: 1px;">filesize</var></code>.
</p><p>At this point, the original specification had the receiver either connect to the given address and port and wait for data, or ignore the request, but for clients supporting the DCC RESUME extension, a third alternative is to ask the sender to skip part of the file by sending the CTCP reply: <code>DCC RESUME <var style="padding-right: 1px;">filename</var> <var style="padding-right: 1px;">port</var> <var style="padding-right: 1px;">position</var></code>.
</p><p>If the sending client supports DCC RESUME, it will reply with, <code>DCC ACCEPT <var style="padding-right: 1px;">filename</var> <var style="padding-right: 1px;">port</var> <var style="padding-right: 1px;">position</var></code>, and the receiver can connect to the given address and port and listen for data to append to an already existing file.
</p><p>Data is sent to the client in blocks, each of which the client must acknowledge by sending the total number of bytes received in the form of a <a href="32-bit" class="mw-redirect" title="32-bit">32-bit</a> <a href="Network_byte_order" class="mw-redirect" title="Network byte order">network byte order</a> integer. This slows down connections and is redundant because of <a href="Transmission_Control_Protocol" title="Transmission Control Protocol">TCP</a>. The send-ahead extension relieves this problem somewhat by not waiting for the acknowledgements, but since the receiver still has to send them for every block it receives, in case the sender expects them, it is not solved completely.
</p><p>Another extension, TDCC, or turbo DCC, removes the acknowledgements, but requires a slightly modified handshake and is not widely supported. Older versions of TDCC replaced the word SEND in the handshake with TSEND; later versions use the word SEND but append a <span class="monospaced">T</span> after the handshake, making this version of TSEND compatible with other clients (as long as they can parse the modified handshake).
</p>
<div class="mw-heading mw-heading4"><h4 id="DCC_SEND_exploit">DCC SEND exploit</h4></div>
<p>The "DCC send exploit" can refer to two bugs: a variant <a href="Buffer_overflow" title="Buffer overflow">buffer overflow</a> error in <a href="MIRC" title="MIRC">mIRC</a> triggered by filenames longer than 14 characters,<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> and an input validation error in some routers manufactured by <a href="Netgear" title="Netgear">Netgear</a>, <a href="D-Link" title="D-Link">D-Link</a> and <a href="Linksys" title="Linksys">Linksys</a>, triggered by the use of port <span class="monospaced">0</span>.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> The router exploit, in particular, may be triggered when the phrase '<span class="monospaced">DCC SEND</span>' followed by at least 6 characters without spaces or newlines appears anywhere in a <a href="Transmission_Control_Protocol" title="Transmission Control Protocol">TCP</a> stream on port 6667, not just when an actual DCC SEND request has been made. In the 2000s it was possible to combine multiple exploits into a single string, <span class="monospaced">DCC SEND startkeylogger 0 0 0</span>, which if posted in a public channel could cause multiple users to disconnect (either by crashing IRC clients, crashing routers, or triggering overly strict default settings in antivirus software).
</p>
<div class="mw-heading mw-heading3"><h3 id="DCC_XMIT">DCC XMIT</h3></div>
<p>The XMIT service is a modified version of DCC SEND that allows for resuming files and cuts down on wasteful traffic from the ACK longs. XMIT is not widely supported.
</p><p>The XMIT handshake differs somewhat from the SEND handshake. The sender sends a <a href="Client-to-client_protocol" title="Client-to-client protocol">CTCP</a> offering a file to the receiver: <code>DCC XMIT <var style="padding-right: 1px;">protocol</var> <var style="padding-right: 1px;">ip</var> <var style="padding-right: 1px;">port</var>[ <var style="padding-right: 1px;">name</var>[ <var style="padding-right: 1px;">size</var>[ <var style="padding-right: 1px;">MIME-type</var>]]]</code>
</p><p>Square brackets here enclose optional parts. <var style="padding-right: 1px;">protocol</var> is the <a href="Protocol_(computing)" class="mw-redirect" title="Protocol (computing)">protocol</a> to use for the transfer; only <span class="monospaced">clear</span> is defined presently. Unlike standard DCC SEND, <var style="padding-right: 1px;">ip</var> can be in the additional forms of standard dotted notation for IPv4, or either hexadecimal or mixed notation for IPv6. To leave an early parameter empty, but still supply a later one, the earlier one can be specified as <span class="monospaced">-</span>. If the receiver does not implement the protocol used, it will send back a CTCP reply of the format: <code>ERRMSG DCC CHAT <var style="padding-right: 1px;">protocol</var> unavailable</code>.
</p><p>CHAT is used here to maintain compatibility with the error messages sent by the extended DCC CHAT. If the receiver declines the transfer, it sends the following CTCP reply: <code>ERRMSG DCC CHAT <var style="padding-right: 1px;">protocol</var> declined</code>.
</p><p>Other errors are reported in the same fashion. If the receiver is willing and capable of receiving the file, it will connect to the given address and port. What happens then depends on the protocol used.
</p><p>In the case of the <span class="monospaced">clear</span> protocol, the XMIT server will, upon receiving a connection, send a 32-bit <code><a href="Time_t" class="mw-redirect" title="Time t">time t</a></code> in <a href="Network_byte_order" class="mw-redirect" title="Network byte order">network byte order</a>, representing the file's modification time. Presumably based on the modification time of the local file, the client will then send another network byte order <code><a href="Endianness#Networking" title="Endianness">long</a></code>, an offset which the server should seek to when sending the file. This should be set to zero if the whole file is wanted, or the size of the local file if the client wishes to resume a previous download.
</p><p>While faster than SEND, XMIT carries one of the same limitations in that it is impossible to tell how big the file is, unless its size is specified in the <a href="Client-to-client_protocol" title="Client-to-client protocol">CTCP</a> negotiation or known beforehand. Furthermore, it is not possible to resume a file past the two gigabyte mark due to the 32-bit offset.
</p>
<div class="mw-heading mw-heading3"><h3 id="Passive_DCC">Passive DCC</h3></div>
<p>In a normal DCC connection the initiator acts as the <a href="Server_(computing)" title="Server (computing)">server</a>, and the target is the <a href="Client_(computing)" title="Client (computing)">client</a>. Because of widespread <a href="Firewall_(networking)" class="mw-redirect" title="Firewall (networking)">firewalling</a> and reduction of end-to-end transparency because of <a href="Network_Address_Translation" class="mw-redirect" title="Network Address Translation">NAT</a>, the initiator might not be able to act as a server. Various ways of asking the target to act as the server have been devised:
</p>
<div class="mw-heading mw-heading4"><h4 id="DCC_Server">DCC Server</h4></div>
<p>This extension to normal DCC SEND and CHAT was introduced by the IRC client <a href="MIRC" title="MIRC">mIRC</a>. DCC Server has moderate support, but is not standard on all clients (see <a href="Comparison_of_Internet_Relay_Chat_clients" class="mw-redirect" title="Comparison of Internet Relay Chat clients">Comparison of Internet Relay Chat clients</a>).
</p><p>It allows the initiation of a DCC connection by IP address, without the need of an IRC server. This is accomplished by the receiving client acting as a server (hence the name) listening (usually on port 59) for a handshake from the sender.
</p><p>For a CHAT, the initiator sends <code>1000 <var style="padding-right: 1px;">initiator nick</var></code>. The target then replies with, <code>1000 <var style="padding-right: 1px;">target nick</var></code>, and the rest proceeds according to standard DCC CHAT protocol.
</p><p>For a SEND, the initiator sends <code>1200 <var style="padding-right: 1px;">initiator nick</var> <var style="padding-right: 1px;">filesize</var> <var style="padding-right: 1px;">filename</var></code>. The target replies with, <code>1210 <var style="padding-right: 1px;">target nick</var> <var style="padding-right: 1px;">resume position</var></code>, where <var style="padding-right: 1px;">resume position</var> is the offset in the file from which to start. From here the transfer proceeds as a normal DCC SEND.
</p><p>DCC Server also supports mIRC-style file servers and DCC GET.
</p>
<div class="mw-heading mw-heading4"><h4 id="RDCC">RDCC</h4></div>
<p>DCC Server provides no way specifying the port to use, so this has to be negotiated manually, which is not always possible, as one of the sides may not be a human. RDCC is a handshake mechanism for DCC Server, which in addition to the port also provides the IP address of the server, which the client might not be able to find otherwise because of host masking. It is not widely supported.
</p><p>The initiator requests the port the target is listening on by sending the CTCP query, <code>RDCC <var style="padding-right: 1px;">function</var> <var style="padding-right: 1px;">comment</var></code>, where <var style="padding-right: 1px;">function</var> is <span class="monospaced">c</span> for chat, <span class="monospaced">s</span> for send, or <span class="monospaced">f</span> for file server.
</p><p>The target may then CTCP reply with, <code>RDCC 0 <var style="padding-right: 1px;">ip</var> <var style="padding-right: 1px;">port</var></code>, where <var style="padding-right: 1px;">ip</var> and <var style="padding-right: 1px;">port</var> have the same meanings as for normal DCC SEND and CHAT. After this the initiator connects to the <var style="padding-right: 1px;">ip</var> and <var style="padding-right: 1px;">port</var>, and a DCC Server handshake follows.
</p>
<div class="mw-heading mw-heading4"><h4 id="DCC_REVERSE">DCC REVERSE</h4></div>
<p>Unlike DCC Server, where the handshake is handled over a direct IP connection, DCC REVERSE has a normal CTCP handshake, similar to the one used by DCC SEND. This is not widely implemented. The sender offers a file to the receiver by sending the CTCP message: <code>DCC REVERSE <var style="padding-right: 1px;">filename</var> <var style="padding-right: 1px;">filesize</var> <var style="padding-right: 1px;">key</var></code>. <var style="padding-right: 1px;">key</var> is a 1โ€“50 characters-long string of <a href="ASCII" title="ASCII">ASCII</a> characters in the range 33โ€“126, and acts as an identifier for the transfer.
</p><p>If the receiver accepts, it sends the CTCP reply, <code>DCC REVERSE <var style="padding-right: 1px;">key</var> <var style="padding-right: 1px;">start</var> <var style="padding-right: 1px;">ip</var> <var style="padding-right: 1px;">port</var></code>
</p><p>Here, <var style="padding-right: 1px;">start</var> is the position in the file from which to start sending, <var style="padding-right: 1px;">ip</var> is the IP address of the receiver in standard <a href="Dot-decimal_notation" title="Dot-decimal notation">dotted notation</a> for <a href="IPv4" title="IPv4">IPv4</a>, or <a href="Hexadecimal" title="Hexadecimal">hexadecimal</a> notation for <a href="IPv6" title="IPv6">IPv6</a>. The sender then connects to the ip address and port indicated by the receiver, and a normal DCC SEND follows. Both the sender and receiver can cancel the handshake by sending the CTCP reply, <code>DCC REJECT REVERSE <var style="padding-right: 1px;">key</var></code>.
</p>
<div class="mw-heading mw-heading4"><h4 id="DCC_RSEND">DCC RSEND</h4></div>
<p>This is the KVIrc client's alternative to DCC REVERSE. The sender offers a file by sending the CTCP: <code>DCC RSEND <var style="padding-right: 1px;">filename</var> <var style="padding-right: 1px;">filesize</var></code>. The receiver can then accept by CTCP replying with, <code>DCC RECV <var style="padding-right: 1px;">filename</var> <var style="padding-right: 1px;">ip</var> <var style="padding-right: 1px;">port</var> <var style="padding-right: 1px;">start</var></code>, and the sender connects to the receiver and sends as during a normal DCC SEND.
</p>
<div class="mw-heading mw-heading4"><h4 id="Reverse_/_Firewall_DCC">Reverse / Firewall DCC</h4></div>
<p>This passive DCC mechanism is supported by at least <a href="MIRC" title="MIRC">mIRC</a>, <a href="Visual_IRC" title="Visual IRC">Visual IRC</a>, <a href="HexChat" title="HexChat">HexChat</a>, KVIrc, <a href="DMDirc" class="mw-redirect" title="DMDirc">DMDirc</a>, Klient, <a href="Konversation" title="Konversation">Konversation</a>, and PhibianIRC. The sender offers a file by sending the CTCP message, <code>DCC SEND <var style="padding-right: 1px;">filename</var> <var style="padding-right: 1px;">ip</var> 0 <var style="padding-right: 1px;">filesize</var> <var style="padding-right: 1px;">token</var></code>. <var style="padding-right: 1px;">ip</var> is the <a href="IP_address" title="IP address">IP address</a> of the sender in network byte order, expressed as a single integer (as in standard DCC). The number 0 is sent instead of a valid port, signaling that this is a Reverse DCC request. <var style="padding-right: 1px;">token</var> is a unique integer; if TSEND is being used (by a client that supports it), the letter <span class="monospaced">T</span> is appended to the token, letting the receiver know it doesn't need to send acknowledgements.
</p><p>The receiver can accept the file by opening a listening socket and responding with the CTCP message, <code>DCC SEND <var style="padding-right: 1px;">filename</var> <var style="padding-right: 1px;">ip</var> <var style="padding-right: 1px;">port</var> <var style="padding-right: 1px;">filesize</var> <var style="padding-right: 1px;">token</var></code>. This is identical to the original Reverse DCC message, except the <var style="padding-right: 1px;">ip</var> and <var style="padding-right: 1px;">port</var> identify the socket where the receiver is listening. <var style="padding-right: 1px;">token</var> is the same as in the original request, letting the sender know which request is being accepted. (Because this message follows the same format as a regular DCC send request, some servers which filter DCC requests may require the sender to add the receiver to their "DCC allow" list.)
</p><p>The sender then connects to the receiver's socket, sends the content of the file, and waits for the receiver to close the socket when the file is finished.
</p><p>When the RESUME extension to the SEND protocol is used, the sequence of commands becomes (with <span class="monospaced">&gt;&gt;</span> indicating an outgoing message on the initiating side, and <span class="monospaced">&lt;&lt;</span> response by its peer):
</p><p><code>&gt;&gt; DCC SEND <var style="padding-right: 1px;">filename</var> <var style="padding-right: 1px;">ip</var> 0 <var style="padding-right: 1px;">filesize</var> <var style="padding-right: 1px;">token</var><br>
&lt;&lt; DCC RESUME <var style="padding-right: 1px;">filename</var> 0 <var style="padding-right: 1px;">position</var> <var style="padding-right: 1px;">token</var><br>
&gt;&gt; DCC ACCEPT <var style="padding-right: 1px;">filename</var> 0 <var style="padding-right: 1px;">position</var> <var style="padding-right: 1px;">token</var><br>
&lt;&lt; DCC SEND <var style="padding-right: 1px;">filename</var> <var style="padding-right: 1px;">peer-ip</var> <var style="padding-right: 1px;">port</var> <var style="padding-right: 1px;">filesize</var> <var style="padding-right: 1px;">token</var></code>
</p><p>After which the protocol proceeds as normal (i.e. the sender connects to the receiver's socket).
</p>
<div class="mw-heading mw-heading3"><h3 id="File_servers_(FSERVs)">File servers (FSERVs)</h3></div>
<p>A DCC <i>fserve</i>, or file server, lets a user browse, read and download files located on a DCC server.
</p><p>Typically, this is implemented with a DCC CHAT session (which presents the user with a command prompt) or special <a href="Client-to-client_protocol" title="Client-to-client protocol">CTCP</a> commands to request a file. The files are sent over DCC SEND or DCC XMIT. There are many implementations of DCC file servers, among them is the FSERV command in the popular <a href="MIRC" title="MIRC">mIRC</a> client.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Client-to-client_protocol" title="Client-to-client protocol">CTCP</a> (Client-to-client protocol)</li>
<li><a href="XDCC" title="XDCC">XDCC</a> (eXtended DCC)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20181116085439/https://www.troy.rollo.name/opensource.html">"Open Source and Free Software"</a>. <i>troy.rollo.name</i>. Archived from <a rel="nofollow" class="external text" href="https://www.troy.rollo.name/opensource.html">the original</a> on 2018-11-16<span class="reference-accessdate">. Retrieved <span class="nowrap">2018-11-15</span></span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.kvirc.net/doc/doc_dcc_connection.html">"DCC negotiation and connection"</a>. <i>kvric.net</i>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.irchelp.org/protocol/ctcpspec.html">"IRCHelp.org โ€” The Client-To-Client Protocol (CTCP)"</a>. <i>www.irchelp.org</i>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFPiccardBrian_BaskinGeorge_SpillmanMarcus_Sachs2005" class="citation book cs1">Piccard, Paul; Brian Baskin; George Spillman; Marcus Sachs (May 1, 2005). "IRC Networks and Security". <i>Securing IM and P2P Applications for the Enterprise</i> (1st&nbsp;ed.). Syngress. p.&nbsp;386. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>1-59749-017-2</bdi>. <q>The authors of the ircII software package originally pioneered file transfers over IRC.</q></cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text">See the 'NOTES' and 'source/ctcp.c' files included with <a rel="nofollow" class="external text" href="http://download.ircii.org/historical/unsorted/clients/unix/ircii/ircii-2.1.4e.tar.gz">ircii-2.1.4e.tar.gz</a></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text">See the 'UPDATES' and 'source/dcc.c' files included with <a rel="nofollow" class="external text" href="http://download.ircii.org/historical/unsorted/clients/unix/ircii/ircii-2.1.4e.tar.gz">ircii-2.1.4e.tar.gz</a></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite id="CITEREFTroy_Rollo1993" class="citation newsgroup cs1">Troy Rollo (January 20, 1993). <a rel="nofollow" class="external text" href="https://groups.google.com/group/alt.irc/msg/fc5de46e023d5ffe">"/dcc"</a>. <a href="Usenet_newsgroup" title="Usenet newsgroup">Newsgroup</a>:&nbsp;<a rel="nofollow" class="external text" href="news:alt.irc">alt.irc</a>. <a href="Usenet_(identifier)" class="mw-redirect" title="Usenet (identifier)">Usenet:</a>&nbsp;<a rel="nofollow" class="external text" href="news:1993Jan20.222051.1484@usage.csd.unsw.OZ.AU">1993Jan20.222051.1484@usage.csd.unsw.OZ.AU</a><span class="reference-accessdate">. Retrieved <span class="nowrap">November 10,</span> 2010</span>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite id="CITEREFRollo" class="citation web cs1">Rollo, Troy. <a rel="nofollow" class="external text" href="https://www.irchelp.org/irchelp/rfc/dccspec.html">"A description of the DCC protocol"</a>. irchelp.org<span class="reference-accessdate">. Retrieved <span class="nowrap">November 10,</span> 2010</span>. <q>The first comment I should make is that the DCC protocol was never designed to be portable to clients other than IRCII. As such I take no responsibility for it being difficult to implement for other clients.</q></cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.mirc.com/help/html/index.html?dcc.html">"mIRC Help"</a>. <i>www.mirc.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-07-24</span></span>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.securityfocus.com/bid/8880">"SecurityFocus exploit information"</a>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1068">"CVE - CVE-2006-1068"</a>. <i>cve.mitre.org</i>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1067">"CVE - CVE-2006-1067"</a>. <i>cve.mitre.org</i>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://www.irchelp.org/irchelp/rfc/dccspec.html">A description of the DCC protocol</a> <i>(note: Most IRC-clients and networks have implemented extensions to the DCC protocol. The DCC commonly used today has evolved quite a bit from what this document describes.)</i></li>
<li><a rel="nofollow" class="external text" href="http://www.kvirc.de/docu/doc_dcc_connection.html">DCC negotiation and connection</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20051215235335/http://www.kvirc.de/docu/doc_dcc_connection.html">Archived</a> 2005-12-15 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li>
<li><a rel="nofollow" class="external text" href="https://www.visualirc.net/tech-tdcc.php">A description of the Turbo DCC protocol</a></li>
<li><a rel="nofollow" class="external text" href="https://www.visualirc.net/tech-wboard.php">A description of the DCC Whiteboard protocol</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" ยท ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Internet_Relay_Chat_(IRC)170" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Internet_Relay_Chat_(IRC)170" style="font-size:114%;margin:0 4em"><a href="Internet_Relay_Chat" class="mw-redirect" title="Internet Relay Chat">Internet Relay Chat</a> (IRC)</div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><a href="Comparison_of_IRC_clients" title="Comparison of IRC clients">Comparison of clients</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Common terms</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="BNC_(software)" title="BNC (software)">BNC</a></li>
<li><a href="IRC_bot" title="IRC bot">Bot</a></li>
<li><a href="Denial-of-service_attack" title="Denial-of-service attack">DoS attack</a></li>
<li><a href="IRC_flood" title="IRC flood">Flood</a></li>
<li><a href="Netsplit" title="Netsplit">Netsplit</a></li>
<li><a href="IRC_operator" title="IRC operator">Operator</a></li>
<li><a href="IRC_script" title="IRC script">Script</a></li>
<li><a href="IRCd" title="IRCd">IRCd</a></li>
<li><a href="IRC_services" title="IRC services">Services</a></li>
<li><a href="IRC_takeover" title="IRC takeover">Takeover</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related protocols</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IRCX" title="IRCX">IRCX</a></li>
<li><a href="MSN_Chat" title="MSN Chat">MSN Chat</a></li>
<li><a href="Client-to-client_protocol" title="Client-to-client protocol">CTCP</a></li>

<li><a href="XDCC" title="XDCC">XDCC</a></li>
<li><a href="Ident_protocol" title="Ident protocol">Ident</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Networks</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="DALnet" title="DALnet">DALnet</a></li>
<li><a href="EFnet" title="EFnet">EFnet</a></li>
<li><a href="Freenode" title="Freenode">Freenode</a></li>
<li><a href="GameSurge" title="GameSurge">GameSurge</a></li>
<li><a href="IRCnet" title="IRCnet">IRCnet</a></li>
<li><a href="Libera_Chat" title="Libera Chat">Libera Chat</a></li>
<li><a href="Open_and_Free_Technology_Community" title="Open and Free Technology Community">OFTC</a></li>
<li><a href="QuakeNet" title="QuakeNet">QuakeNet</a></li>
<li><a href="Rizon" title="Rizon">Rizon</a></li>
<li><a href="RusNet" title="RusNet">RusNet</a></li>
<li><a href="SlashNET" title="SlashNET">SlashNET</a></li>
<li><a href="Snoonet" class="mw-redirect" title="Snoonet">Snoonet</a></li>
<li><a href="Undernet" title="Undernet">Undernet</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Technology</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Eggdrop" title="Eggdrop">Eggdrop</a></li>
<li><a href="Infobot" title="Infobot">Infobot</a></li>
<li><a href="BitlBee" title="BitlBee">BitlBee</a></li>
<li><a href="ZNC" title="ZNC">ZNC</a></li>
<li><a href="UnrealIRCd" title="UnrealIRCd">UnrealIRCd</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">See also</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="List_of_Internet_Relay_Chat_commands" class="mw-redirect" title="List of Internet Relay Chat commands">List of commands</a></li>
<li><a href="IRC_subculture" title="IRC subculture">Subculture</a></li>
<li><a href="Jarkko_Oikarinen" title="Jarkko Oikarinen">Jarkko Oikarinen</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Clients</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">macOS</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Colloquy_(software)" title="Colloquy (software)">Colloquy</a></li>
<li>Fire</li>
<li><a href="Homer_(software)" title="Homer (software)">Homer</a></li>
<li><a href="Ircle" title="Ircle">Ircle</a></li>
<li><a href="Linkinus" title="Linkinus">Linkinus</a></li>
<li><a href="Snak" title="Snak">Snak</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Microsoft Windows</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Bersirc" title="Bersirc">Bersirc</a></li>
<li><a href="MIRC" title="MIRC">mIRC</a></li>
<li><a href="Microsoft_Comic_Chat" title="Microsoft Comic Chat">Microsoft Comic Chat</a></li>
<li><a href="PIRCH_(IRC_client)" title="PIRCH (IRC client)">PIRCH</a></li>
<li><a href="Shareaza" title="Shareaza">Shareaza</a></li>
<li><a href="Visual_IRC" title="Visual IRC">Visual IRC</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Unix-like</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IrcII" title="IrcII">ircII</a></li>
<li><a href="Ii_(IRC_client)" title="Ii (IRC client)">Ii</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Cross-platform</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Ayttm" title="Ayttm">Ayttm</a></li>
<li><a href="BitchX" title="BitchX">BitchX</a></li>
<li><a href="IRC_Cloud" title="IRC Cloud">IRC Cloud</a></li>
<li><a href="Irssi" title="Irssi">Irssi</a></li>
<li><a href="Konversation" title="Konversation">Konversation</a></li>
<li><a href="KVIrc" title="KVIrc">KVIrc</a></li>
<li><a href="LeafChat" title="LeafChat">LeafChat</a></li>
<li><a href="Naim_(software)" title="Naim (software)">naim</a></li>
<li><a href="Nettalk_(IRC_client)" title="Nettalk (IRC client)">Nettalk</a></li>
<li><a href="Smuxi" title="Smuxi">Smuxi</a></li>
<li><a href="WeeChat" title="WeeChat">WeeChat</a></li>
<li><a href="HexChat" title="HexChat">HexChat</a></li>
<li><a href="PJIRC" title="PJIRC">PJIRC</a></li>
<li><a href="Quassel_IRC" title="Quassel IRC">Quassel IRC</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Multi-IM</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Centericq" title="Centericq">Centericq</a></li>
<li><a href="Empathy_(software)" title="Empathy (software)">Empathy</a></li>
<li><a href="Kopete" title="Kopete">Kopete</a></li>
<li><a href="Miranda_NG" title="Miranda NG">Miranda NG</a></li>
<li><a href="Pidgin_(software)" title="Pidgin (software)">Pidgin</a></li>
<li><a href="Trillian_(software)" title="Trillian (software)">Trillian</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Web-based</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="CGI%3AIRC" title="CGI:IRC">CGI:IRC</a></li>
<li><a href="PJIRC" title="PJIRC">PJIRC</a></li>
<li><a href="Mibbit" title="Mibbit">Mibbit</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Web browser components</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="ChatZilla" title="ChatZilla">ChatZilla</a></li>
<li><a href="Mozilla_Application_Suite" title="Mozilla Application Suite">Mozilla Application Suite</a></li>
<li><a href="Mozilla_Thunderbird" title="Mozilla Thunderbird">Mozilla Thunderbird</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Library and plug-ins</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="ERC_(software)" title="ERC (software)">ERC</a></li>
<li><a href="Rcirc" title="Rcirc">rcirc</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>Category</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-31" href="https://en.wikipedia.org/wiki/?title=Direct_Client-to-Client&amp;oldid=1303580965">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>